#pragma once

#include "State.h"
namespace ne{
class StateManager : public StateListener {
public:
	StateManager(void);
	~StateManager(void);

	void Init();
	State* FindByName(const Ogre::String& name);
	void ChangeState(State* state);
	void AddState(State* state);
	bool Update(class GameTime* gameTime);
	void Shut();

private:
	State*				m_currentState;
	State*				m_nextState;
	std::vector<State*> m_states;
};
}